DLL a Invalid pointer operation

Otázka od: mydelphiconf@centrum.cz

15. 9. 2004 13:39

Ahojky lidi,
  na malem prikladku (pokus dostat string z DLL) mi to hazi zajimavou chybku.

 v DLL mam exportovanou funkci, ktera vraci String (polozka z pole podle
urciteho indexu).
Na formu pomoci tlacitka vyvolavam udalost pro nacteni toho stringu z DLL,
hodnota se nacte a pak to hodi Error modalni okno s hlaskou INVALID POINTER
OPERATION. V momente, kdy volam jinou funkci z DLL, ktera vraci jiny typ nez
string, tak je vse v poradku. Nevite nikdo, cim to je? (ShareMem v DLL
includuju, jinak by nesla ani zkompilovat, ze  

P.

WinXPcz SP1, D7ent.




Odpovedá: Peter Ondras

16. 9. 2004 8:42

Len tak ma napada ci hodnota ktora sa ma zmenit na string nie je float a
pri prevode ma zly oddelovac (napr. system vyzaduje bodku a je tam
ciarka a naopak).

> -----Original Message-----
> na malem prikladku (pokus dostat string z DLL) mi to hazi zajimavou
> chybku.
>
> v DLL mam exportovanou funkci, ktera vraci String (polozka z pole
podle
> urciteho indexu).
> Na formu pomoci tlacitka vyvolavam udalost pro nacteni toho stringu z
DLL,
> hodnota se nacte a pak to hodi Error modalni okno s hlaskou INVALID
> POINTER OPERATION. V momente, kdy volam jinou funkci z DLL, ktera
vraci
> jiny typ nez string, tak je vse v poradku. Nevite nikdo, cim to je?


Odpovedá: Peter Ondras

16. 9. 2004 8:54

Teraz vidim, ze to co som napisal je velmi pravdepodobne zle.
Ospravedlnujem sa, zle som videl tu chybovu hlasku.
Takze v tomto neporadim, len poviem, ze ja v DLL vzdy pouzivam PChar a
nie String a potom v programe si ho prevadzam pomocou funkcii PChar() a
StrPas() na prave potrebny typ.

> -----Original Message-----
> Len tak ma napada ci hodnota ktora sa ma zmenit na string nie je float
a
> pri prevode ma zly oddelovac (napr. system vyzaduje bodku a je tam
> ciarka a naopak).
>
> > -----Original Message-----
> > na malem prikladku (pokus dostat string z DLL) mi to hazi
zajimavou
> > chybku.
> >
> > v DLL mam exportovanou funkci, ktera vraci String (polozka z pole
> podle
> > urciteho indexu).
> > Na formu pomoci tlacitka vyvolavam udalost pro nacteni toho stringu
z
> DLL,
> > hodnota se nacte a pak to hodi Error modalni okno s hlaskou INVALID
> > POINTER OPERATION. V momente, kdy volam jinou funkci z DLL, ktera
> vraci
> > jiny typ nez string, tak je vse v poradku. Nevite nikdo, cim to je?
>


Odpovedá: mydelphiconf@centrum.cz

16. 9. 2004 9:34

jojo, to bude ono ... s tim Pchar to facha spravne. Nasel jsem to vcera
odpoledne nekde na webiku jako standardni a doporucene reseni. Holt s DLL
zacinam a takhle to dopada   Ponauceni pro priste.

P.

______________________________________________________________
> Od: "Peter Ondras" peter.ondras@pse.sk
... ze ja v DLL vzdy pouzivam PChar a nie String a potom v programe si ho
prevadzam pomocou funkcii PChar() a StrPas() na prave potrebny typ.